/*
 * Copyright (c) 2005, 2014 vacoor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package org.vacoor.nothing.web.domain;

import java.io.Serializable;

/**
 * 基本分页参数
 * 参考 Spring Data Commons
 * <p/>
 * <p/>
 *
 * @author Vacoor
 */
public interface Pageable extends Serializable {

    /**
     * 获取当前页码
     */
    int getPage();

    /**
     * 获取分页大小
     */
    int getPageSize();

    /**
     * 获取当前页第一条记录在数据库的偏移量(第一条记录偏移量为0, 同 Hibernate setFirstResult())
     * oracle中应该为 rownum <= offset + pageSize && rownum > offset, (rownum 从1开始))
     */
    int getOffset();

    /**
     * 排序, 如果不存在, 该方法应该安全的返回一个空白的 Sort 对象
     */
    Sort getSort();

}
